package IO流.文件字节输入流_每次读取一个字节;

// FileInputStream(文件字节输入流)

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class Test {
    public static void main(String[] args) throws Exception {
        // 作用: 以内存为基准, 可以把磁盘文件中的数据以字节的形式督导内存中去

        // 构造器
        // 1. public FileInputStream(File file): 创建字节输入流管道与源文件接通(通过File来确定路径)

        // 2. public FileInputStream(String pathname): 创建字节输入流管道与源文件接通(直接申明路径)(用的多)

        // 方法名称
        // 3. public int read(): 每次读取一个字节返回, 如果发现没有数据可读会返回-1

        // 4. public int read(byte[] buffer): 每次用一个字节数组去读取数据, 返回字节数组读取了多少个字节, 如果发现没有数据可读会返回-1

        // 1. 创建文件字节输入流管道
        InputStream is = new FileInputStream(new File("Senior\\src\\IO流\\文件字节输入流_每次读取一个字节\\particular"));
        InputStream is1 = new FileInputStream("Senior\\src\\IO流\\文件字节输入流_每次读取一个字节\\particular");

        // 2. 开始读取文件的字节数据
//        int b1 = is.read();
//        System.out.println((char)b1);
//        int b2 = is.read();
//        System.out.println((char)b2);
//        int b3 = is.read();
//        System.out.println(b3);

        // 3. 使用循环读取文件的字节数据
        int b;
        while ((b = is.read()) != -1) {
            System.out.print((char)b);
        }
        //弊端
        // 使用read()的效率很慢性能很差
        // 如果读取的字节里有中文就会乱码, 而且不可避免
        // 流使用完毕之后, 必须关闭! 释放系统资源!!
        
        // 释放资源
        is.close();


    }
}
